package com.gf.event.dao;

import java.util.List;

import com.gf.base.type.EventType;
import com.gf.common.bean.Page;
import com.gf.event.model.Event;

/**
 * 
 * @author zhuguifeng
 * 
 */
public interface EventDao {

	/**
	 * 增加用户事件
	 * 
	 * @param userId
	 * @param userName
	 * @param operation
	 * @param title
	 * @param portrait 头像路径
	 * @param targetId
	 * @param eventType
	 * @return
	 */
	public long insertEvent(long userId, String userName, String operation,
			String title, String portrait, long targetId, EventType eventType);

	/**
	 * 得到某用户的事件
	 * 
	 * @param userId
	 * @param currentPage
	 * @return
	 */
	public List<Event> queryEventsByUserId(long userId, Page page);

	/**
	 * 查询关注的人的动态事件
	 * 
	 * @param userId
	 * @param idols
	 * @param page
	 * @return
	 */
	public List<Event> queryEventsOfIdols(long userId, List<Long> idols,
			Page page);

	/**
	 * 查询所有用户动态事件<br>
	 * 按时间降序返回
	 * 
	 * @param curpage
	 * @param pageSize
	 * @return
	 */
	public List<Event> queryAllEvent(Page page);
	
	/**
	 * 更新该用户事件中头像信息
	 * @param userId
	 * @return
	 */
	public int updatePortrait(long userId,String newPortrait);
	
	/**
	 * 
	 * @param page
	 * @return
	 */
	public List<Event> queryRecentEvent(Page page);
	
	
	/**
	 * 删除指定事件
	 * @param targetId
	 * @param eventType
	 */
	public boolean deleteEvent(long targetId,EventType eventType);
}
